<html>
<head>
<meta http-equiv="Content-Type" content="text/html" />
<title>Simd Library Release Notes (2015)</title>
</head>
<body> <center><table width=1024><tr><td>
<a id="HOME"><a>
<center>
<img width="200" height="100" src="logo.png">
<h1>Simd Library Release Notes (2015).</h1>
<a href="index.html">Home</a> |
<a href="2020.html">Release Notes</a> | 
<a href="download.html">Download</a> |  
<a href="help/index.html">Documentation</a> |  
<a href="http://github.com/ermig1979/Simd/issues">Issues</a> |  
<a href="http://github.com/ermig1979/Simd" target="_top">GitHub</a> 
</center>
<hr/> 
</td></tr><tr><td>

<center>
 <a href="2020.html">2020</a> |
 <a href="2019.html">2019</a> |
 <a href="2018.html">2018</a> |
 <a href="2017.html">2017</a> |
 <a href="2016.html">2016</a> | 
 <a href="2015.html">2015</a> |
 <a href="2014.html">2014</a> |
 <a href="2013.html">2013</a>
</center>

<hr/> 
<h3 id="R036">December 1, 2015 (version 3.0.36.559)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Extended functionality of function OperationBinary16i (added Subtraction operation).</li>
 <li>Base implementation, SSE2, SSSE3, AVX2 and VMX optimizations of function MeanFilter3x3.</li>
 <li>Macro for ARM NEON architecture.</li>
 <li>Runtime ARM NEON detection.</li>
 <li>NEON optimization of function OperationBinary16i.</li>
 <li>NEON optimization of function OperationBinary8u.</li>
 <li>NEON optimization of function VectorProduct.</li>
 <li>NEON optimization of function ReduceGray2x2.</li>
 <li>NEON optimization of function Reorder16bit.</li>
 <li>NEON optimization of function Reorder32bit.</li>
 <li>NEON optimization of function Reorder64bit.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function MeanFilter3x3.</li>
 <li>Performance report generation for ARM NEON.</li>
 <li>Tests for verifying functionality of NEON version of function OperationBinary16i.</li>
 <li>Tests for verifying functionality of NEON version of function OperationBinary8u.</li>
 <li>Tests for verifying functionality of NEON version of function VectorProduct.</li>
 <li>Tests for verifying functionality of NEON version of function ReduceGray2x2.</li>
 <li>Tests for verifying functionality of NEON version of function Reorder16bit.</li>
 <li>Tests for verifying functionality of NEON version of function Reorder32bit.</li>
 <li>Tests for verifying functionality of NEON version of function Reorder64bit.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Added to CMakeLists.txt a section for building of the library for ARM(32-bit/64-bit) CPU architecture.</li>
 <li>Neon project for ARM NEON extension (CMake and Visual Studio).</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R035">November 2, 2015 (version 2.3.35.542)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Pyramid structure.</li>
</ul>

<h4>Test framework</h4>
<h5>Bug fixing</h5>
<ul>
 <li>Using uninitialized test data in tests for verifying functionality of function ConditionalFill.</li>
</ul>

<h4>Documentation</h4>
<h5>New features</h5>
<ul>
 <li>A description of the library building.</li>
 <li>A description of test application using.</li>
</ul>

<h4>Infrastructure</h4>
<h5>Removing</h5>
<ul>
 <li>Project files for Visual Studio 2012.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R034">October 1, 2015 (version 2.3.34.537)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Frame structure.</li>
 <li>Copy function (to copy frames).</li>
 <li>Convert function (to convert frames).</li>
 <li>Convert function (to convert one plane images of Gray8, Bgr24 and Bgra32 formats).</li>
 <li>Base implementation, SSE2, AVX2 and VMX optimizations of function InterleaveUv.</li>
 <li>Base implementation, SSE2, AVX2 and VMX optimizations of function ConditionalFill.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function InterleaveUv.</li>
 <li>Tests for verifying functionality of function ConditionalFill.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R033">September 4, 2015 (version 2.3.33.529)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Extended functionality of function OperationBinary8u (added Minimum operation).</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Compiler errors for Visual Studio 2015.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R032">August 3, 2015 (version 2.3.32.526)</h3>

<h4>Algorithms</h4>
<h5>Bug fixing</h5>
<ul>
 <li>A bug in algorithm of tilted sum estimation.</li>
 <li>Loading of unaligned address as aligned in SSE2, SSSE3 and AVX2 optimizations of function SquaredDifferenceSumMasked.</li>
 <li>Loading of unaligned address as aligned in SSE2 and AVX2 optimizations of function Bgr48pToBgra32.</li>
 <li>A crash in function ResizeBilinear (resizing of 8-bit gray image from 642x300 to 200x200).</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R031">July 1, 2015 (version 2.3.31.522)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>SSE2, AVX2 and VMX optimizations of function HistogramMasked.</li>
 <li>SSSE3 optimization of function ReduceGray4x4.</li>
 <li>SSSE3 optimization of function Laplace.</li>
 <li>SSSE3 optimization of function SobelDx.</li>
 <li>SSSE3 optimization of function SobelDy.</li>
 <li>SSSE3 optimization of function TextureBoostedSaturatedGradient.</li>
 <li>SSSE3 optimization of function SquaredDifferenceSum.</li>
 <li>SSSE3 optimization of function SquaredDifferenceSumMasked.</li>
 <li>Base implementation of function NormalizeHistogram.</li>
 <li>Base implementation, SSE, AVX and VSX optimizations of function SquaredDifferenceKahanSum32f.</li>
 <li>SSSE3 optimization of function GaussianBlur3x3.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Loading of unaligned address as aligned in SSE2 and AVX2 optimizations of function AbsDifferenceSumMasked.</li>
 <li>A bug in Base implementation of function FillBgr.</li>
</ul>
<h5>Improving</h5>
<ul>
 <li>Improving of VMX optimization of function ReduceGray2x2.</li>
 <li>Loop unrolling of VMX optimization of function AbsDifferenceSums3x3.</li>
 <li>Loop unrolling of VMX optimization of function AbsGradientSaturatedSum.</li>
 <li>Improving of AVX2 and VMX optimizations of function ReduceGray4x4.</li>
 <li>Improving of AVX2 and VMX optimizations of function TextureBoostedSaturatedGradient.</li>
 <li>Improving of AVX2 optimization of function Laplace.</li>
 <li>Improving of AVX2 optimization of function SobelDx.</li>
 <li>Improving of AVX2 optimization of function SobelDy.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function LaplaceAbs.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function LaplaceAbsSum.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function SobelDxAbs.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function SobelDxAbsSum.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function SobelDyAbs.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function SobelDyAbsSum.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function ContourMetrics.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function ContourMetricsMasked.</li>
 <li>Improving of AVX2 optimization of function SquaredDifferenceSum.</li>
 <li>Improving of AVX2 optimization of function SquaredDifferenceSumMasked.</li>
 <li>Improving of SSSE3 and AVX2 optimizations of function ResizeBilinear for 8-bit gray images.</li>
 <li>Improving of AVX2 optimization of function GaussianBlur3x3.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function NormalizeHistogram.</li>
 <li>Tests for verifying functionality of function SquaredDifferenceKahanSum32f.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Project files for Visual Studio 2015.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R030">June 1, 2015 (version 2.3.30.503)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Base implementation, SSE2, AVX2 and VMX optimizations of function Laplace.</li>
 <li>Base implementation, SSSE3, AVX2 and VMX optimizations of function LaplaceAbs.</li>
 <li>Base implementation, SSSE3, AVX2 and VMX optimizations of function LaplaceAbsSum.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>A GCC compiler error in function Simd::Sse2::ResizeBilinear.</li>
</ul>
<h5>Improving</h5>
<ul>
 <li>Loop unrolling of SSE, AVX and VSX optimizations of function SquaredDifferenceSum32f.</li>
 <li>Loop unrolling of VSX optimization of function SvmSumLinear.</li>
 <li>Loop unrolling of VMX optimization of function SquaredDifferenceSum.</li>
 <li>Loop unrolling of VMX optimization of function SquaredDifferenceSumMasked.</li>
 <li>Loop unrolling of VMX optimization of function AbsDifferenceSum.</li>
 <li>Loop unrolling of VMX optimization of function AbsDifferenceSumMasked.</li>
 <li>Loop unrolling of VMX optimization of function ValueSum.</li>
 <li>Loop unrolling of VMX optimization of function SquareSum.</li>
 <li>Loop unrolling of VMX optimization of function CorrelationSum.</li>
 <li>Loop unrolling of VMX optimization of function ConditionalCount8u.</li>
 <li>Loop unrolling of VMX optimization of function ConditionalCount16i.</li>
 <li>Loop unrolling of VMX optimization of function ConditionalSum.</li>
 <li>Loop unrolling of VMX optimization of function ConditionalSquareSum.</li>
 <li>Loop unrolling of VMX optimization of function ConditionalSquareGradientSum.</li>
 <li>Loop unrolling of VMX optimization of function GetStatistic.</li>
 <li>Loop unrolling of VMX optimization of function GetRowSums.</li>
 <li>Loop unrolling of VMX optimization of function GetAbsDyRowSums.</li>
 <li>Loop unrolling of VMX optimization of function OperationBinary8u.</li>
 <li>Loop unrolling of VMX optimization of function VectorProduct.</li>
 <li>Loop unrolling of VMX optimization of function AddFeatureDifference.</li>
 <li>Loop unrolling of SSE2, AVX2 and VMX optimizations of function AbsSecondDerivativeHistogram.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Common performance measurement.</li>
 <li>Multi threading performance testing.</li>
 <li>Tests for verifying functionality of function Laplace.</li>
 <li>Tests for verifying functionality of function LaplaceAbs.</li>
 <li>Tests for verifying functionality of function LaplaceAbsSum.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>A GCC compiler warning in function Test::Data::CreatePath.</li>
</ul>

<h4>Documentation</h4>
<h5>Bug fixing</h5>
<ul>
 <li>The wrong classification of the function GaussianBlur3x3.</li>
 <li>A description of function Laplace.</li>
 <li>A description of function LaplaceAbs.</li>
 <li>A description of function LaplaceAbsSum.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R029">May 4, 2015 (version 2.3.29.469)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Base implementation, SSE, AVX and VSX optimizations of function SvmSumLinear.</li>
 <li>SSE2, SSSE3, AVX2 and VMX optimizations of function ResizeBilinear for Uv16, Bgr24 and Bgra32 images.</li>
 <li>Base implementation, SSSE3, AVX2 and VMX optimizations of function Yuv422pToBgr.</li>
 <li>Base implementation, SSE2, AVX2 and VMX optimizations of function Yuv422pToBgra.</li>
 <li>Runtime detection of VMX and VSX extensions for PowerPC.</li>
 <li>Base implementation, SSE2, SSSE3, AVX2 and VMX optimizations of function BgraToYuv422p.</li>
 <li>Base implementation, SSSE3, AVX2 and VMX optimizations of function BgrToYuv422p.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>A potential program crash in function SimdSquaredDifferenceSum32f.</li>
 <li>Removing of redundant inclusion of header files.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function SvmSumLinear.</li>
 <li>Tests for verifying functionality of function Yuv422pToBgr.</li>
 <li>Tests for verifying functionality of function Yuv422pToBgra.</li>
 <li>Tests for verifying functionality of function BgraToYuv422p.</li>
 <li>Tests for verifying functionality of function BgrToYuv422p.</li>
 <li>Joint declaration and execution of auto- and data-tests.</li>
</ul>

<h4>Documentation</h4>
<h5>New features</h5>
<ul>
 <li>A description of function SvmSumLinear.</li>
 <li>A description of function Yuv422pToBgr.</li>
 <li>A description of function Yuv422pToBgra.</li>
 <li>A description of function BgraToYuv422p.</li>
 <li>A description of function BgrToYuv422p.</li>
 <li>Expanding of the library overview.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>A small inaccuracy in description of SimdShiftBilinear.</li>
 <li>Incorrect insert of pseudocode in function's descriptions.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>Vmx project for PowerPC VMX(AltiVec) extension.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R028">April 2, 2015 (version 2.2.28.451)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Base implementation, SSE2, AVX2 and VSX optimization of function CorrelationSum.</li>
 <li>Functions Avx::Square and Avx::Combine.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>A program crash in function SimdShiftBilinear.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function CorrelationSum.</li>
</ul>

<h4>Documentation</h4>
<h5>New features</h5>
<ul>
 <li>A description of function CorrelationSum.</li>
 <li>A reference to the project at GitHub.</li>
</ul>

<h4>Infrastructure</h4>
<h5>New features</h5>
<ul>
 <li>This project was added to GitHub.</li>
</ul>
<h5>Changes</h5>
<ul>
 <li>A support of non SVN repositories was added to GetVersion.cmd and GetVersion.sh scripts.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>An error for x86/x64 in CMakeLists.txt.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R027">March 2, 2015 (version 2.2.27.443)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>An operator of division of rectangle on scalar value.</li>
 <li>SIMD_ALLOCATE_ASSERT macro.</li>
 <li>Base implementation, SSSE3, AVX2 and VSX optimization of function SobelDxAbsSum.</li>
 <li>Base implementation, SSSE3, AVX2 and VSX optimization of function SobelDyAbsSum.</li>
 <li>Base implementation, SSE2, AVX2 and VSX optimization of function HogDirectionHistograms.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Function SimdAllocate() returns NULL if align is less then pointer size.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function SobelDxAbsSum.</li>
 <li>Tests for verifying functionality of function SobelDyAbsSum.</li>
 <li>Tests for verifying functionality of function HogDirectionHistograms.</li>
</ul>

<h4>Documentation</h4>
<h5>New features</h5>
<ul>
 <li>A description of function SobelDxAbsSum.</li>
 <li>A description of function SobelDyAbsSum.</li>
 <li>A description of function HogDirectionHistograms.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R026">February 4, 2015 (version 2.2.26.436)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>C API functions for memory management: SimdAllocate, SimdFree, SimdAlign and SimdAlignment.</li>
 <li>Methods Allocator::Align and Allocator::Alignment.</li>
</ul>

<h5>Changes</h5>
<ul>
 <li>An extension of files with C++ API classes was changed from *.h to *.hpp.</li>
 <li>SimdUtils.h was renamed to SimdLib.hpp.</li>
 <li>A C++ API was made independent from internal implementation of Simd Library.</li>
 <li>A content of SimdTypes.h was moved to SimdLib.h.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Wrong using of "bool" type in C API.</li>
 <li>Error in function Allocate for PowerPC.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>A file TestCheckC.c for checking of C API.</li>
 <li>A file TestCheckCpp.c for checking of C++ API.</li>
</ul>

<h4>Documentation</h4>
<h5>New features</h5>
<ul>
 <li>An on-line and off-line documentation generated by Doxygen.</li>
 <li>A separate file SimdHelp.h with the service information required to generate a reference documentation.</li>
 <li>A description of Allocator structure.</li>
 <li>A description of Point structure and related functions.</li>
 <li>A description of Rectangle structure and related functions.</li>
 <li>A description of View structure and related functions.</li>
 <li>A description of Pixel::Bgr24 structure.</li>
 <li>A description of Pixel::Bgra32 structure.</li>
 <li>A description of Pixel::Hsv24 structure.</li>
 <li>A description of Pixel::Hsl24 structure.</li>
 <li>A description for all C++ wrapper functions.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 
<h3 id="R025">January 5, 2015 (version 2.1.25.419)</h3>

<h4>Algorithms</h4>
<h5>New features</h5>
<ul>
 <li>Pixel::Bgr24 structure.</li>
 <li>Pixel::Bgra32 structure.</li>
 <li>Pixel::Hsv24 structure.</li>
 <li>Pixel::Hsl24 structure.</li>
 <li>Base implementation of function BgrToHsv.</li>
 <li>Base implementation of function BgrToHsl.</li>
 <li>Base implementation of function Yuv444pToHsv.</li>
 <li>Base implementation of function Yuv444pToHsl.</li>
</ul>
<h5>Bug fixing</h5>
<ul>
 <li>Wrong assert condition in function SegmentationShrinkRegion.</li>
</ul>

<h4>Test framework</h4>
<h5>New features</h5>
<ul>
 <li>Tests for verifying functionality of function BgrToHsv.</li>
 <li>Tests for verifying functionality of function BgrToHsl.</li>
 <li>Tests for verifying functionality of function Yuv444pToHsv.</li>
 <li>Tests for verifying functionality of function Yuv444pToHsl.</li>
</ul>

<h4>Infrastructure</h4>
<h5>Changes</h5>
<ul>
 <li>A scripts' location.</li>
</ul>

<a href="#HOME">Home</a> 
<hr/> 

<center>
 <a href="2020.html">2020</a> |
 <a href="2019.html">2019</a> |
 <a href="2018.html">2018</a> |
 <a href="2017.html">2017</a> |
 <a href="2016.html">2016</a> | 
 <a href="2015.html">2015</a> |
 <a href="2014.html">2014</a> |
 <a href="2013.html">2013</a>
</center>

<hr/> 

</td> </tr> </table> </center> </body> </html>
